﻿//----------------------------------------------------------------
// Desc: 
// Edit: ShowLong, http://blog.csdn.net/showlong
//
// Date Created: 2011-07-14
//
// Update Date : 
//
// Copyright (c) Fuel4D (http://www.fuel4d.com), All rights reserved.
//
//----------------------------------------------------------------
#pragma once


class IFAnimation;


class IFAvatar : public IFMemObject
{
protected:
    explicit IFAvatar()
    {}

public:
    // 取得时间部位的主骨架对象
    virtual IFAnimation* GetParent() = 0;
    // 取得部位模型
    // .idx 部位索引
    virtual IFAnimation* GetPart(size_t idx) = 0;
    // 创建部位
    // .idx 部位索引
    // .id 该部位的模型ID，只能是通过注册的ID，不能是零时创建的
    virtual bool CreatePart(size_t idx, FIDMODEL id) = 0;
    // 消毁部位
    // .idx 部位索引
    virtual void DestroyPart(size_t idx) = 0;
    // 创建所有部位
    // .vpart 各部位模型ID
    // .return 返回成功创建了多少个部位
    virtual size_t CreateAllPart(FV_IDMODEL& vpart) = 0;
    // 消毁所有部位
    virtual void DestroyAllPart() = 0;
    // 设置某个部位显示或者隐藏
    virtual void SetVisible(size_t idx, bool draw) = 0;
    // 测试某个部位是否是显示的
    virtual bool GetVisible(size_t idx) = 0;
};